% 清理变量和关闭所有窗口
clear;
close all;
clc;
% 打开CBMEX
cbmex('open');

% 设置参数
cbmex('trialconfig', 1);


% 初始暂停时间
initial_pause_time = 0.5;
% 额外暂停时间
additional_pause_time = 0.3;


% 跳跃阈值
jump_threshold = 1200;
% 采集的通道号
channels_of_interest = [185, 191, 206, 215, 217, 221, 222, 224];
% 采样率 30khz
sampling_rate = 30000;
% 以手离开startpad为准，前后时间设置
pre_time = 0.45;
post_time = 0.3;
% bin的大小(ms)
spike_bin = 100;
% spike窗口大小（采样点数）
spike_window_samples = pre_time * sampling_rate + post_time * sampling_rate;
% spike窗口的步长(采样点数)
spike_step_samples = spike_bin * sampling_rate / 1000;
% spike矩阵的大小
spike_matrix_size = [length(channels_of_interest), spike_window_samples / spike_step_samples];


% 初始化数据缓存
data_buffer = {};
% 所有的spike矩阵
all_spike_matrices = {};
% 所有的时间戳
all_timestamps = [];
startTime = datetime('now', 'Format', 'yyyy-MM-dd HH:mm:ss.SSS');

% 开始循环，持续进行数据采集
while true
    % 暂停0.5秒，每隔0.5秒采集一次数据
    pause(initial_pause_time);

    % 获取数据  event_data: 事件数据  time: 时间  cont: 连续数据 并清空机器缓存
    [event_data, time, cont] = cbmex('trialdata', 1);
    
    % 将数据存入缓存
    data_buffer{end+1} = struct('event_data', {event_data}, 'time', time, 'cont', {cont});
    
end



